/**
 * @file facelib.cpp
 * @author lynxi
 * @brief
 * @version 1.0
 * @date 2024-04-30
 *
 * Copyright:
 * © 2024 北京灵汐科技有限公司 版权所有。
 * 注意：以下内容均为北京灵汐科技有限公司原创，未经本公司允许，不得转载，否则将视为侵权；对于不遵守此声明或者其他违法使用以下内容者，本公司依法保留追究权。
 * © 2024 Lynxi Technologies Co., Ltd. All rights reserved.
 * NOTICE: All information contained here is, and remains the property of Lynxi.
 * This file can not be copied or distributed without the permission of Lynxi
 * Technologies Co., Ltd.
 *
 */

#ifndef __FACE_POST_PROCESS_H__
#define __FACE_POST_PROCESS_H__

#include "boxInfo.h"

#ifdef __cplusplus
extern "C" {
#endif

// 人脸检测结果
typedef struct {
  float xmin;
  float ymin;
  float xmax;
  float ymax;
  float area;
  float score;
  int id;
  float landmark[10];  // 关键点x,y坐标
} FaceDetectBox;

typedef struct {
  uint16_t boxesNum;                 // box数量
  FaceDetectBox boxes[BOX_MAX_NUM];  // box信息
} FaceDetectInfo;

typedef struct {
  int height;
  int width;
  int ori_height;
  int ori_width;
  float score_threshold;
  float nms_threshold;
  void *output_tensor;  // 注意: Lynxi plugin方式时需要使用device
                        // memory传递，否则使用系统内存
  FaceDetectInfo *detectInfo;  // 输出box信息, Lynxi plugin方式时需要使用device
                               // memory传递，否则使用系统内存
} FacePostProcessInfo_t;

int lynFacePostProcess(FacePostProcessInfo_t *post_info);

#ifdef __cplusplus
}
#endif

#endif